/*
 * Eliminar.cpp
 *
 *  Created on: Apr 10, 2014
 *      Author: carlos
 */

#include "Eliminar.h"

Eliminar::Eliminar(string claveComando, string tipoBusqueda,
		string tipoComandoLeyenda, string operador, FileHandler* fileHandler) :
		Busqueda(claveComando, tipoBusqueda, tipoComandoLeyenda, fileHandler), operador(
				operador) {

}

void Eliminar::execute(int argc, char** argv) {
	//tomamos el parametro que es el valor a buscar.
	//si es una eliminacion por id, entonces se elmina ese solo. (operador="==".
	// Si es una elminacion por mayor o menor entonces pedimos el siguiente en el indice
	//Busqueda::execute(argc, argv);

	if (argc < 3) {
		cout
				<< "ingrese numero de id que desea ELIMINAR. Consulte con la opcion -h"
				<< endl;
		return;
	}
	string tipoEliminacion(argv[1]);
	if (ELIMINAR_ID == tipoEliminacion) {
		int identificador = atoi(argv[2]);
		cout << "ELIMINAR por identificador: " << identificador << endl;
		this->fileHandler->getIndexadorTwit()->deleteRecord(identificador);
		this->fileHandler->getIndexadorRss()->deleteRecord(identificador);

	}

	if (ELIMINAR_IDRSS == tipoEliminacion) {
		int identificador = atoi(argv[2]);
		cout << "ELIMINAR por identificador el rss: " << identificador << endl;
		this->fileHandler->getIndexadorRss()->deleteRecord(identificador);
	}

	if (ELIMINAR_IDTWIT == tipoEliminacion) {
		int identificador = atoi(argv[2]);
		cout << "ELIMINAR por identificador el twit: " << identificador << endl;
		this->fileHandler->getIndexadorTwit()->deleteRecord(identificador);
	}

	if (ELIMINAR_FECHA == tipoEliminacion) {
		int fecha = atoi(argv[2]);
		cout << "ELIMINAR los resultados por fecha: " << fecha << endl;
		this->fileHandler->getIndexadorTwit()->deleteRecordFechaExacta(fecha);
		//this->fileHandler->getIndexadorRss()->deleteRecordFechaExacta(fecha);
	}

	if (ELIMINAR_FECHA_MAYOR == tipoEliminacion) {
		int fecha = atoi(argv[2]);
		cout << "ELIMINAR los resultados por fecha mayor a: " << fecha << endl;
		this->fileHandler->getIndexadorTwit()->deleteRecordMayorFecha(fecha);
	}

	if (ELMINAR_FECHA_MENOR == tipoEliminacion) {
		int fecha = atoi(argv[2]);
		cout << "ELIMINAR los resultados por fecha menor a: " << fecha << endl;
		this->fileHandler->getIndexadorTwit()->deleteRecordMenorFecha(fecha);
	}
}

Eliminar::~Eliminar() {
}

